import router from './router';
import { ref } from 'vue';

// 免登录白名单（无需登录即可访问的页面）
const whiteList = ['/test', '/login'];

// 登录状态标记（响应式）
const isAuthenticated = ref(false);

router.beforeEach((to, from, next) => {
  console.log('路由守卫 -> 目标页面:', to.path);

  // 1. 从localStorage同步登录状态（刷新页面不丢失）
  const storedLoginState = localStorage.getItem('isAuthenticated');
  isAuthenticated.value = storedLoginState === 'true';

  // 2. 已登录状态处理
  if (isAuthenticated.value) {
    // 已登录用户访问登录页时，强制跳转到首页
    if (to.path === '/login') {
      next('/');
    } else {
      // 已登录用户可访问所有页面（根据需要可添加角色权限判断）
      next();
    }
  }

  // 3. 未登录状态处理
  else {
    // 未登录用户访问白名单页面（如登录页、测试页），直接放行
    if (whiteList.includes(to.path)) {
      next();
    } else {
      // 未登录用户访问非白名单页面，强制跳转到登录页，并记录原路径
      next({
        path: '/login',
        query: { redirect: to.fullPath } // 登录后可跳回原页面
      });
    }
  }
});

router.afterEach(() => {
  // 路由切换后操作（如关闭加载动画等）
});

export default router;